#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
知识库使用示例
展示如何使用自定义表名和条件创建表功能
"""

from knowledge import KnowledgeBase

def main():
    """演示知识库的基本使用方法"""
    
    print("🚀 知识库使用示例")
    print("=" * 50)
    
    # 示例1：使用默认表名
    print("\n📚 示例1：使用默认表名")
    kb_default = KnowledgeBase()
    
    # 示例2：使用自定义表名
    print("\n📚 示例2：使用自定义表名 'water_resources'")
    kb_water = KnowledgeBase(table_name="water_resources")
    
    # 示例3：使用另一个自定义表名
    print("\n📚 示例3：使用自定义表名 'city_planning'")
    kb_city = KnowledgeBase(table_name="city_planning")
    
    # 添加一些示例数据到水资源知识库
    print("\n💧 向水资源知识库添加数据...")
    kb_water.add_knowledge(
        "辽源市2020年总人口为100万人，预计到2030年人口增长率为5%",
        metadata={"城市": "辽源市", "年份": "2020-2030", "类型": "人口统计"}
    )
    
    kb_water.add_knowledge(
        "城市供水系统规划需要考虑人口增长趋势和用水需求变化",
        metadata={"类型": "供水规划", "关键因素": "人口增长"}
    )
    
    # 添加一些示例数据到城市规划知识库
    print("\n🏙️ 向城市规划知识库添加数据...")
    kb_city.add_knowledge(
        "辽源市城市总体规划2020-2030年，重点发展绿色产业和生态建设",
        metadata={"城市": "辽源市", "规划期": "2020-2030", "重点": "绿色发展"}
    )
    
    # 搜索示例
    print("\n🔍 搜索测试...")
    
    print("\n在水资源知识库中搜索'人口':")
    water_results = kb_water.search_knowledge("人口", limit=3)
    for i, result in enumerate(water_results, 1):
        print(f"  {i}. 相似度: {result['similarity']:.3f}")
        print(f"     内容: {result['text'][:50]}...")
        print(f"     元数据: {result['metadata']}")
    
    print("\n在城市规划知识库中搜索'规划':")
    city_results = kb_city.search_knowledge("规划", limit=3)
    for i, result in enumerate(city_results, 1):
        print(f"  {i}. 相似度: {result['similarity']:.3f}")
        print(f"     内容: {result['text'][:50]}...")
        print(f"     元数据: {result['metadata']}")
    
    print("\n✅ 示例完成！")
    print("\n💡 提示：")
    print("- 每个KnowledgeBase实例可以操作不同的表")
    print("- 表不存在时会自动创建，存在时会跳过创建")
    print("- 不同的知识库可以存储不同领域的知识")

if __name__ == "__main__":
    try:
        main()
    except Exception as e:
        print(f"❌ 运行出错: {e}")
        print("请确保:")
        print("1. PostgreSQL数据库正在运行")
        print("2. pgvector扩展已安装")
        print("3. Ollama服务正在运行")
        print("4. 数据库连接配置正确")
